<!--
    -  Copyright (c) 2018-2025, haohanwork.com All rights reserved.
  -->
<template>
  <div class="execution">
    <basic-container>
      <avue-crud ref="crud"
                 :page.sync="page"
                 :data="tableData"
                 :permission="permissionList"
                 :table-loading="tableLoading"
                 :option="tableOption"
                 @on-load="getList"
                 @search-change="searchChange"
                 @refresh-change="refreshChange"
                 @row-update="handleUpdate"
                 @row-save="handleSave"
                 @row-del="rowDel">
        <template slot="menuLeft">
          <el-button class="filter-item" type="primary" size="mini" icon="el-icon-edit" @click="handleAdd">
            新增
          </el-button>
        </template>
        <template slot="menu" slot-scope="scope">
          <el-button type="text" size="mini" @click="go_detail(scope.row,scope.index)">详情
          </el-button>
          <el-button type="text" size="mini" icon="el-icon-edit" @click="handleUpdate(scope.row,scope.index)">编辑
          </el-button>
          <el-button type="text" size="mini" icon="el-icon-delete" @click="deletes(scope.row,scope.index)">删除
          </el-button>
        </template>
      </avue-crud>
    </basic-container>
  </div>
</template>

<script>
  import {fetchList, getObj, addObj, putObj, delObj} from '@/api/crm/picturerecord'
  import {tableOption} from '@/const/crud/crm/picturerecord'
  import {mapGetters} from 'vuex'

  export default {
    name: 'picturerecord',
    data() {
      return {
        searchForm: {},
        tableData: [],
        page: {
          total: 0, // 总页数
          currentPage: 1, // 当前页数
          pageSize: 20 // 每页显示多少条
        },
        tableLoading: false,
        tableOption: tableOption
      }
    },
    computed: {
      ...mapGetters(['permissions']),
      permissionList() {
        return {
          addBtn: this.vaildData(this.permissions.crm_picturerecord_add, false),
          delBtn: this.vaildData(this.permissions.crm_picturerecord_del, false),
          editBtn: this.vaildData(this.permissions.crm_picturerecord_edit, false)
        };
      }
    },
    methods: {
      getList(page, params) {
        this.tableLoading = true
        fetchList(Object.assign({
          current: page.currentPage,
          size: page.pageSize
        }, params, this.searchForm )).then(response => {
          this.tableData = response.data.data.records
          this.page.total = response.data.data.total
          this.tableLoading = false
        }).catch(() => {
          this.tableLoading=false
        })
      },
      rowDel: function (row, index) {
        var _this = this
        this.$confirm('是否确认删除ID为' + row.id, '提示', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        }).then(function () {
          return delObj(row.id)
        }).then(data => {
          _this.$message.success('删除成功')
          this.getList(this.page)
        })
      },
      handleUpdate: function (row, index, done,loading) {
        putObj(row).then(data => {
          this.$message.success('修改成功')
          done()
          this.getList(this.page)
        }).catch(() => {
          loading();
        });
      },
      handleSave: function (row, done,loading) {
        addObj(row).then(data => {
          this.$message.success('添加成功')
          done()
          this.getList(this.page)
        }).catch(() => {
          loading();
        });
      },
      searchChange(form, done) {
                this.getList(this.page, form);
                done();
            },
      refreshChange(info) {
    this.getList(this.page, this.filterForm(info.searchForm));
},
      go_detail(row){
        let query = {res:JSON.stringify(row)};
        this.$router.push({path: '/pic/detailPic',query:query})
      },
      handleUpdate(row){
        let query = {res:JSON.stringify(row)};
        this.$router.push({path: '/pic/editPic',query:query})
      },
      handleAdd(){
        this.$router.push({path: '/pic/addPic'})
      }
    }
  }
</script>
